【SymPy】(六)微积分 | 您所在的位置:网站首页 › python sympy积分 › 【SymPy】(六)微积分 |
【SymPy】(一)SymPy简介【SymPy】(二)使用SymPy需要避开的坑【SymPy】(三)基本操作(四)打印 【SymPy】(五)简化 文章目录 (六)微积分 1 导数Derivatives 2 积分 Integrals 3 极限 Limits 4 级数展开 Series Expansion 5 有限差分 Finite differences (六)微积分 from sympy import * x, y, z = symbols('x y z')本文代码在Jupyter QtConsole中执行。 1 导数Derivatives计算表达式的导数,使用diff函数。 diff可以同时求多次导数。若要求多次导,可根据需要多次传递变量,或者在变量后面传递一个数字。如: 你也可以一次对许多变量求偏导。只需按顺序传递每个变量,使用与单变量导数相同的语法。 diff也可以作为方法调用: 要创建未计算的导数,请使用Derivative类。它的语法与diff相同。 要计算未计算的导数,请使用doit方法。 可以使用元组(x,n)创建未指定次数的导数,其中n是导数相对于x的求导次数。 要计算积分,使用integrate()。有两种积分,定积分和不定积分。要计算一个不定积分,只需在表达式后面传递变量。 注意,SymPy不定积分的结果不包括积分常数。如果你想,你可以自己加一个。 注: ∞ ∞ ∞在SymPy中是 oo 要计算定积分,请传递参数(积分变量、下限、上限)。 例如,计算: ∫ 0 ∞ e − x d x \int_{0}^{\infty} e^{-x} d x ∫0∞e−xdx 与不定积分一样,可以传递多个限制元组来执行多重积分。例如,计算
∫
−
∞
∞
∫
−
∞
∞
e
−
x
2
−
y
2
d
x
d
y
\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} e^{-x^{2}-y^{2}} d x d y
∫−∞∞∫−∞∞e−x2−y2dxdy 如果integrate无法计算积分,它将返回一个未赋值的Integral对象。 Integrate使用不断改进的强大算法来计算定积分和不定积分,下面是其功能的示例: SymPy可以用limit函数计算符号极限。 计算 lim x → x 0 f ( x ) \lim _{x \rightarrow x_{0}} f(x) x→x0limf(x) 的语法为: limit(f(x), x, x0),如: 当要计算的点是间断点时,应使用limit而不是sub。另外,像 ∞ − ∞ ∞−∞ ∞−∞和 ∞ ∞ ∞∞ ∞∞这样的结果返回nan(不是数字)。例如 像Derivative和 Integral一样,极限也有一个未赋值的对应项,Limit。要计算它,可使用doit。 若要仅计算一侧的限制,请传递“+”或“-”作为限制的第四个参数。例如,计算 lim x → 0 + 1 x \lim _{x \rightarrow 0^{+}} \frac{1}{x} x→0+limx1 另一侧: SymPy可以计算函数围绕一点的渐近级数展开。 4 级数展开 Series ExpansionSymPy可以计算函数在一点的渐近级数展开。 计算 f ( x ) f(x) f(x)在 x = x 0 x=x_0 x=x0点附近的 n n n次方展开式,使用f(x).series(x,x0,n)。 x0和n可以省略,在这种情况下,将使用默认值x0=0和n=6。 末尾的 O ( x 4 ) O(x^4) O(x4)表示 x = 0 x=0 x=0时的 Landau 阶项(不要与计算机科学中使用的大 O O O表示法混淆,后者通常表示 x = ∞ x=∞ x=∞时的Landau 阶项)。这意味着所有的 x x x项的幂大于或等于 x 4 x^4 x4被省略。 O ( . ) O(.) O(.)自动地吸收比它高阶的项。在Sympy中它可以在 series之外创建和操作。 如果你不需要 O ( ) O() O(),可使用removeO方法。 O O O表示法支持0之外的任意极限点 如果我们想要一个表达式来估计一条曲线的导数,那么对于这条曲线,我们缺少一个封闭形式的表示,或者对于这条曲线,我们还不知道它的函数值。一种方法是使用有限差分法。 如果已经有一个Derivative实例,则可以使用as_finite_difference方法生成任意阶导数的近似值: 在这里,一阶导数用差分在 x x x附近近似,用步长1等距计算。 我们可以使用任意步长(可以包含符号表达式): 如果你只是对权重感兴趣,可以手动执行以下操作: 如果觉得使用finite_diff_weights看起来比较复杂,而Derivative实例的as_finite_difference方法不够灵活,那么可以使用 apply_finite_diff, 它以 order, x_list, y_list和x0作为参数: 未完待续: 【SymPy】(七)方程求解 【SymPy】(八)矩阵 【SymPy】(九)高级表达式操作 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |